// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * at91sam9x5cm.dtsi - Device Tree Include file for AT91SAM9x5 CPU Module
 *
 *  Copyright (C) 2012 Atmel,
 *                2012 Nicolas Ferre <nicolas.ferre@atmel.com>
 */

/ {
	memory {
		reg = <0x20000000 0x8000000>;
	};

	clocks {
		slow_xtal {
			clock-frequency = <32768>;
		};

		main_xtal {
			clock-frequency = <12000000>;
		};
	};

	ahb {
		apb {
			tcb0: timer@f8008000 {
				timer@0 {
					compatible = "atmel,tcb-timer";
					reg = <0>;
				};

				timer@1 {
					compatible = "atmel,tcb-timer";
					reg = <1>;
				};
			};

			pinctrl@fffff400 {
				1wire_cm {
					pinctrl_1wire_cm: 1wire_cm-0 {
						atmel,pins = <AT91_PIOB 18 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>; /* PB18 multidrive, conflicts with led */
					};
				};
			};

			rtc@fffffeb0 {
				status = "okay";
			};
		};

		ebi: ebi@10000000 {
			pinctrl-0 = <&pinctrl_ebi_addr_nand
				     &pinctrl_ebi_data_0_7>;
			pinctrl-names = "default";
			status = "okay";

			nand_controller: nand-controller {
				status = "okay";
				pinctrl-0 = <&pinctrl_nand_oe_we
					     &pinctrl_nand_cs
					     &pinctrl_nand_rb>;
				pinctrl-names = "default";

				nand@3 {
					reg = <0x3 0x0 0x800000>;
					rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
					cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
					nand-bus-width = <8>;
					nand-ecc-mode = "hw";
					nand-ecc-strength = <2>;
					nand-ecc-step-size = <512>;
					nand-on-flash-bbt;
					label = "atmel_nand";

					partitions {
						compatible = "fixed-partitions";
						#address-cells = <1>;
						#size-cells = <1>;

						at91bootstrap@0 {
							label = "at91bootstrap";
							reg = <0x0 0x40000>;
						};

						uboot@40000 {
							label = "u-boot";
							reg = <0x40000 0xc0000>;
						};

						ubootenvred@100000 {
							label = "U-Boot Env Redundant";
							reg = <0x100000 0x40000>;
						};

						ubootenv@140000 {
							label = "U-Boot Env";
							reg = <0x140000 0x40000>;
						};

						dtb@180000 {
							label = "device tree";
							reg = <0x180000 0x80000>;
						};

						kernel@200000 {
							label = "kernel";
							reg = <0x200000 0x600000>;
						};

						rootfs@800000 {
							label = "rootfs";
							reg = <0x800000 0x0f800000>;
						};
					};
				};
			};
		};
	};

	leds {
		compatible = "gpio-leds";

		pb18 {
			label = "pb18";
			gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
		};

		pd21 {
			label = "pd21";
			gpios = <&pioD 21 GPIO_ACTIVE_HIGH>;
		};
	};

	1wire_cm {
		compatible = "w1-gpio";
		gpios = <&pioB 18 GPIO_ACTIVE_HIGH>;
		linux,open-drain;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_1wire_cm>;
		status = "okay";
	};

};
